在 win 10 系统开发的windows service 程序,但需要应用在windows server 系统上,安装的时候提示找不到installutil.exe安装工具,导致无法安装window 服务。原因是server 系统中的.net Framework 版本太低,只是v.2。查询到以下两个较为使用的解决方案:
nssm.exe工具 以安装nginx为例
- 下载nginx windows版本:http://nginx.org/
- 下载 nssm :http://nssm.cc/
安装
Nginx下载解压到一个目录,nssm下载后解压相应版本(32/64)到一个目录。
然后安装服务:nssm install N1 “D:\N1\nginx.exe” `
- 即可安装成功最基本的服务,不过启动的是nssm,让后由nssm启动nginx。现在就可以通过控制面板->管理员工具->服务中找到该服务,并启动和停止了。当然,net start 和 net stop也是可以的。
但是,当停止服务后,会发现网站仍在正常运转。查看进程会发现还有一个nginx进程存在。原来,nginx启动了两个nginx进程(根据nginx.conf的配置worker_processes 1;),一个监控进程,一个工作进程。显然,停止的是监控进程,而工作进程没停,结果就是nginx仍在运行。因此彻底关闭nginx就需要别的手段,如任务管理器或者使用taskkill命令:
taskkill /F /IM nginx.exe > nul
当然,可以写一个脚本来处理nginx停止的所有操作:@echo off echo Stopping nginx service... net stop N1 echo Kill nginx process... taskkill /F /IM nginx.exe > nul
- 想删除服务:
sc delete Nginx
- 卸载服务:
`nssm remove nginx
异常情况
1. <pre>Service not starting - Error 3</pre> 1. 原因 :服务指向的地址为nssm的安装位置, 修改地址即可 2. 1053 1. 原因太多:(bug\超时\ .net Framework b版本)建议更新 .net Framework 版本
- 注意:需要在注册表中通过ImagePath修改可服务执行文件的位置
更新 .net Framework
- 下载 https://www.microsoft.com/en-us/download/details.aspx?id=53344
- 点击 安装 按钮
- 安装成功
- 检查情况 位置 C:\Windows\Microsoft.NET\Framework v.4.0.30319
参考
http://stackoverflow.com/questions/25241560/windows-process-activation-service-not-starting-error-3
- http://www.cnblogs.com/itcomputer/p/6216038.html
- http://www.cnblogs.com/ChineseMoonGod/p/5575715.html